REM "Coop Version of the Multiplayer Map Platform from DK2"

LEVEL_VERSION(1)

SET_GENERATE_SPEED(400)

MAX_CREATURES(ALL_PLAYERS,15)

START_MONEY(PLAYER0,20000)
START_MONEY(PLAYER1,20000)
START_MONEY(PLAYER2,520000)
START_MONEY(PLAYER3,520000)

COMPUTER_PLAYER(PLAYER2,0)
COMPUTER_PLAYER(PLAYER3,0)

ADD_CREATURE_TO_POOL(BILE_DEMON,20)
ADD_CREATURE_TO_POOL(DRAGON,20)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,20)
ADD_CREATURE_TO_POOL(HELL_HOUND,20)
ADD_CREATURE_TO_POOL(TENTACLE,20)
ADD_CREATURE_TO_POOL(DEMONSPAWN,20)
ADD_CREATURE_TO_POOL(SORCEROR,20)
ADD_CREATURE_TO_POOL(TROLL,20)
ADD_CREATURE_TO_POOL(SPIDER,20)
ADD_CREATURE_TO_POOL(BUG,20)
ADD_CREATURE_TO_POOL(ORC,20)

CREATURE_AVAILABLE(ALL_PLAYERS,TROLL,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,TENTACLE,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DEMONSPAWN,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DARK_MISTRESS,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,SORCEROR,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,BILE_DEMON,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,BUG,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,SPIDER,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,HELL_HOUND,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DRAGON,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,ORC,1,0)

ROOM_AVAILABLE(ALL_PLAYERS,GUARD_POST,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TREASURE,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,RESEARCH,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,WORKSHOP,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,GARDEN,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,LAIR,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,GRAVEYARD,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,PRISON,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TORTURE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TRAINING,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,BARRACKS,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TEMPLE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,BRIDGE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,SCAVENGER,1,0)

MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HAND,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_OBEY,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_IMP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SLAP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SIGHT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CAVE_IN,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HOLD_AUDIENCE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CHICKEN,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SPEED,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_LIGHTNING,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CONCEAL,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_DISEASE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_DESTROY_WALLS,1,0)


DOOR_AVAILABLE(ALL_PLAYERS,WOOD,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,ALARM,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,BRACED,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,POISON_GAS,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,LAVA,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,STEEL,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,BOULDER,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,MAGIC,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,LIGHTNING,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,WORD_OF_POWER,1,0)

ALLY_PLAYERS(PLAYER0,PLAYER1,3)
ALLY_PLAYERS(PLAYER2,PLAYER3,3)

SET_GAME_RULE(AlliesShareVision,1)
SET_GAME_RULE(AlliesShareCta,1)
SET_GAME_RULE(AlliesShareDrop,1)





CREATE_PARTY(ERK)
	ADD_TO_PARTY(ERK,ARCHER,1,300,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(ERK1)
	ADD_TO_PARTY(ERK1,THIEF,4,300,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(ERK1,BARBARIAN,4,300,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(ERK1,ARCHER,5,300,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(ERK1,ARCHER,5,300,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(ERK1,MONK,5,300,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(ERK1,GIANT,5,300,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(ERK2)
	ADD_TO_PARTY(ERK2,MONK,7,300,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(ERK2,BARBARIAN,7,300,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(ERK2,ARCHER,6,300,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(ERK2,ARCHER,6,300,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(ERK2,GIANT,7,300,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(ERK2,GIANT,7,300,ATTACK_DUNGEON_HEART,0)



SET_TIMER(PLAYER1,TIMER1)

IF(PLAYER1,TIMER1 >= 5000)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,ERK,-1,DUNGEON_HEART,1,1,500)
ENDIF

IF(PLAYER1,TIMER1 >= 5000)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,ERK,-2,DUNGEON_HEART,2,1,500)
ENDIF

IF(PLAYER1,TIMER1 >= 5000)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,ERK,-3,DUNGEON_HEART,0,1,500)
ENDIF

IF(PLAYER1,TIMER1 >= 5000)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,ERK,-4,DUNGEON_HEART,3,1,500)
ENDIF




IF(PLAYER1,TIMER1 >= 17500)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,ERK1,-1,DUNGEON_HEART,1,3,500)
ENDIF

IF(PLAYER1,TIMER1 >= 17500)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,ERK1,-2,DUNGEON_HEART,2,3,500)
ENDIF

IF(PLAYER1,TIMER1 >= 17500)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,ERK1,-3,DUNGEON_HEART,0,3,500)
ENDIF

IF(PLAYER1,TIMER1 >= 17500)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,ERK1,-4,DUNGEON_HEART,3,3,500)
ENDIF




IF(PLAYER1,TIMER1 >= 30500)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,ERK2,-1,DUNGEON_HEART,1,1,500)
ENDIF

IF(PLAYER1,TIMER1 >= 30500)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,ERK2,-2,DUNGEON_HEART,2,1,500)
ENDIF

IF(PLAYER1,TIMER1 >= 30500)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,ERK2,-3,DUNGEON_HEART,0,1,500)
ENDIF

IF(PLAYER1,TIMER1 >= 30500)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,ERK2,-4,DUNGEON_HEART,3,1,500)
ENDIF



SET_FLAG(PLAYER0,FLAG1,1)
SET_FLAG(PLAYER0,FLAG2,1)


IF(PLAYER0,FLAG1 == 1)
	IF(PLAYER2,MONEY < 1000)
		NEXT_COMMAND_REUSABLE
		ADD_GOLD_TO_PLAYER(PLAYER2,500)
	ENDIF
ENDIF


IF(PLAYER0,FLAG2 <= 1)
	IF(PLAYER3,MONEY < 1000)
		NEXT_COMMAND_REUSABLE
		ADD_GOLD_TO_PLAYER(PLAYER3,500)
	ENDIF
ENDIF


IF_ACTION_POINT(9,PLAYER2)
	SET_FLAG(PLAYER0,FLAG1,2)
ENDIF


IF_ACTION_POINT(10,PLAYER2)
	SET_FLAG(PLAYER0,FLAG1,2)
ENDIF


IF_ACTION_POINT(11,PLAYER3)
	SET_FLAG(PLAYER0,FLAG2,2)
ENDIF


IF_ACTION_POINT(12,PLAYER3)
	SET_FLAG(PLAYER0,FLAG2,2)
ENDIF



IF_AVAILABLE(PLAYER2,BRIDGE > 0)
	COMPUTER_DIG_TO_LOCATION(PLAYER2,PLAYER2,1)
	COMPUTER_DIG_TO_LOCATION(PLAYER2,PLAYER2,2)
	COMPUTER_DIG_TO_LOCATION(PLAYER2,PLAYER2,3)
	COMPUTER_DIG_TO_LOCATION(PLAYER2,PLAYER2,4)
ENDIF

IF_AVAILABLE(PLAYER3,BRIDGE > 0)
	COMPUTER_DIG_TO_LOCATION(PLAYER3,PLAYER3,5)
	COMPUTER_DIG_TO_LOCATION(PLAYER3,PLAYER3,6)
	COMPUTER_DIG_TO_LOCATION(PLAYER3,PLAYER3,7)
	COMPUTER_DIG_TO_LOCATION(PLAYER3,PLAYER3,8)
ENDIF



IF_AVAILABLE(PLAYER2,WORKSHOP > 0)
	COMPUTER_DIG_TO_LOCATION(PLAYER2,PLAYER2,1)
	COMPUTER_DIG_TO_LOCATION(PLAYER2,PLAYER2,2)
	COMPUTER_DIG_TO_LOCATION(PLAYER2,PLAYER2,3)
	COMPUTER_DIG_TO_LOCATION(PLAYER2,PLAYER2,4)
ENDIF

IF_AVAILABLE(PLAYER3,WORKSHOP > 0)
	COMPUTER_DIG_TO_LOCATION(PLAYER3,PLAYER3,5)
	COMPUTER_DIG_TO_LOCATION(PLAYER3,PLAYER3,6)
	COMPUTER_DIG_TO_LOCATION(PLAYER3,PLAYER3,7)
	COMPUTER_DIG_TO_LOCATION(PLAYER3,PLAYER3,8)
ENDIF



IF_AVAILABLE(PLAYER2,TORTURE > 0)
	COMPUTER_DIG_TO_LOCATION(PLAYER2,PLAYER2,1)
	COMPUTER_DIG_TO_LOCATION(PLAYER2,PLAYER2,2)
	COMPUTER_DIG_TO_LOCATION(PLAYER2,PLAYER2,3)
	COMPUTER_DIG_TO_LOCATION(PLAYER2,PLAYER2,4)
ENDIF

IF_AVAILABLE(PLAYER3,TORTURE > 0)
	COMPUTER_DIG_TO_LOCATION(PLAYER3,PLAYER3,5)
	COMPUTER_DIG_TO_LOCATION(PLAYER3,PLAYER3,6)
	COMPUTER_DIG_TO_LOCATION(PLAYER3,PLAYER3,7)
	COMPUTER_DIG_TO_LOCATION(PLAYER3,PLAYER3,8)
ENDIF


if(player0,ENTRANCE == 9)
  next_command_reusable
  max_creatures(Player0,15)
ENDIF
if(player0,ENTRANCE == 18)
  next_command_reusable
  max_creatures(Player0,20)
ENDIF

if(player0,ENTRANCE == 27)
  next_command_reusable
  max_creatures(Player0,25)
ENDIF

if(player0,ENTRANCE == 36)
  next_command_reusable
  max_creatures(Player0,30)
ENDIF

if(player1,ENTRANCE == 9)
  next_command_reusable
  max_creatures(Player1,15)
ENDIF
if(player1,ENTRANCE == 18)
  next_command_reusable
  max_creatures(Player1,20)
ENDIF
if(player1,ENTRANCE == 27)
  next_command_reusable
  max_creatures(Player1,25)
ENDIF
if(player1,ENTRANCE == 36)
  next_command_reusable
  max_creatures(Player1,30)
ENDIF

if(player2,ENTRANCE == 9)
  next_command_reusable
  max_creatures(Player2,15)
ENDIF
if(player2,ENTRANCE == 18)
  next_command_reusable
  max_creatures(Player2,20)
ENDIF
if(player2,ENTRANCE == 27)
  next_command_reusable
  max_creatures(Player2,25)
ENDIF
if(player2,ENTRANCE == 36)
  next_command_reusable
  max_creatures(Player2,30)
ENDIF

if(player3,ENTRANCE == 9)
  next_command_reusable
  max_creatures(Player3,15)
ENDIF
if(player3,ENTRANCE == 18)
  next_command_reusable
  max_creatures(Player3,20)
ENDIF
if(player3,ENTRANCE == 27)
  next_command_reusable
  max_creatures(Player3,25)
ENDIF
if(player3,ENTRANCE == 36)
  next_command_reusable
  max_creatures(Player3,30)
ENDIF








IF(PLAYER2,DUNGEON_DESTROYED == 1)
	IF(PLAYER3,DUNGEON_DESTROYED == 1)
		WIN_GAME
	ENDIF
ENDIF




IF(PLAYER0,DUNGEON_DESTROYED == 1)
		LOSE_GAME
ENDIF


IF(PLAYER1,DUNGEON_DESTROYED == 1)
		LOSE_GAME
ENDIF